<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>一年已经多少天</title>
</head>

<body>
    <script>
        // 用户输入年月日，计算该年已经过去多少天，在控制台输出。（用函数实现）
        // 上交要求：1、上脚代码截图和运行结果截图。
        // 2、源代码添加附件上传。
        // 提示：1、注意每个月天数不同
        //       2、注意闰年的2月有29天。
        //       3、注意输入的月份和日期需合法。
        //       LeapYear 闰年
        var monthDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];// 每个月的天数

        function isLeapYear(year) {
            return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;// 判断是否为闰年
        }

        function isValidDate(year, month, day) {// 判断输入的年月日是否合法
            if (isLeapYear(year)) {// 闰年2月有29天
                monthDay[1] = 29;// 修改2月的天数为29天
            }
            return month >= 1 && month <= 12 && day >= 1 && day <= monthDay[month - 1];// 判断输入的月份和日期是否合法
        }

        function daysPassed(year, month, day) {
            if (!isValidDate(year, month, day)) {
                return "输入的年月日不合法";
            }
            let days = 0;// 总天数
            for (let i = 1; i < month; i++) {// 累加前一个月的天数
                days += monthDay[i - 1];// 读取全局变量monthDay ，累加每个月的天数

            }
            days += day;
            return `${year}年已经过去了${days}天`;
        }
        var date = prompt("请输入年月日（格式：yyyy-mm-dd）：");
        var parts = date.split("-");// 字符串分割
        var year = parseInt(parts[0]);// 将分割第一部分转换为年
        var month = parseInt(parts[1]);// 将分割第二部分转换为月
        var day = parseInt(parts[2]);// 将分割第二部分转换为日
        console.log(daysPassed(year, month, day));
    </script>
</body>

</html>